package com.yugao.fintech.antelope.infra.module.file.model.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yugao.fintech.antelope.base.tenant.core.DataIsolation;

import java.util.Date;

/**
 * 文件上传记录表
 *

 */
@Getter
@Setter
@Builder
@TableName("infra_file_record")
@AllArgsConstructor
@NoArgsConstructor
@DataIsolation(filterTenant = true, tableName = "infra_file_record")
public class FileRecord {
    @TableId
	private Long id;
	
	/**
	 * 业务类型
	 */
	private String bizType;
	
	/**
	 * 文件原始名称
	 */
	private String originalName;
	
	/**
	 * 新文件名
	 */
	private String newName;
	
	/**
	 * 文件类型(mine-type标准)
	 */
	private String fileType;

	/**
	 * 文件大小, 单位是kb
	 */
	private Long fileSize;

	/**
	 * 存储器类型
	 */
	private String storageType;

	/**
	 * 存储的桶名
	 */
	private String bucketName;
	
	/**
	 * 文件服务器存储绝对路径
	 */
	private String filePath;
	
	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private Date createdAt;
	
	/**
	 * 最后修改时间
	 */
	@TableField(fill = FieldFill.UPDATE)
	private Date updatedAt;
	
	/**
	 * 创建者用户名
	 */
	@TableField(fill = FieldFill.INSERT)
	private String createdBy;

	@TableField(fill = FieldFill.INSERT)
	private Long createdUid;
	
	/**
	 * 更新者用户名
	 */
	@TableField(fill = FieldFill.UPDATE)
	private String updatedBy;
	
	/**
	 * 逻辑删除(默认0正常，1文件已被物理删除)
	 */
	private String delFlag;

    public static LambdaQueryWrapper<FileRecord> lqw() {
		return Wrappers.lambdaQuery();
	}
}
